//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------

function write(v) { WScript.Echo(v + ""); }

function foo() {}

write(new String('he' + 'llo') === new Object());
write(new String('he' + 'llo') === new Object());
write(new String('he' + 'llo') === [1, 2, 3]);
write(new String('he' + 'llo') === [1 ,2 , 3]);
write(new String('he' + 'llo') === new Array(3));
write(new String('he' + 'llo') === Array(3));
write(new String('he' + 'llo') === new Array(1 ,2 ,3));
write(new String('he' + 'llo') === Array(1));
write(new String('he' + 'llo') === foo);
write(new Object() === undefined);
write(new Object() === null);
write(new Object() === true);
write(new Object() === false);
write(new Object() === Boolean(true));
write(new Object() === Boolean(false));
write(new Object() === new Boolean(true));
write(new Object() === new Boolean(false));
write(new Object() === NaN);
write(new Object() === +0);
write(new Object() === -0);
write(new Object() === 0);
write(new Object() === 0.0);
write(new Object() === -0.0);
write(new Object() === +0.0);
write(new Object() === 1);
write(new Object() === 10);
write(new Object() === 10.0);
write(new Object() === 10.1);
write(new Object() === -1);
write(new Object() === -10);
write(new Object() === -10.0);
write(new Object() === -10.1);
write(new Object() === Number.MAX_VALUE);
write(new Object() === Number.MIN_VALUE);
write(new Object() === Number.NaN);
write(new Object() === Number.POSITIVE_INFINITY);
write(new Object() === Number.NEGATIVE_INFINITY);
write(new Object() === new Number(NaN));
write(new Object() === new Number(+0));
write(new Object() === new Number(-0));
write(new Object() === new Number(0));
write(new Object() === new Number(0.0));
write(new Object() === new Number(-0.0));
write(new Object() === new Number(+0.0));
write(new Object() === new Number(1));
write(new Object() === new Number(10));
write(new Object() === new Number(10.0));
write(new Object() === new Number(10.1));
write(new Object() === new Number(-1));
write(new Object() === new Number(-10));
write(new Object() === new Number(-10.0));
write(new Object() === new Number(-10.1));
write(new Object() === new Number(Number.MAX_VALUE));
write(new Object() === new Number(Number.MIN_VALUE));
write(new Object() === new Number(Number.NaN));
write(new Object() === new Number(Number.POSITIVE_INFINITY));
write(new Object() === new Number(Number.NEGATIVE_INFINITY));
write(new Object() === '');
write(new Object() === 0xa);
write(new Object() === 04);
write(new Object() === 'hello');
write(new Object() === 'hel' + 'lo');
write(new Object() === String(''));
write(new Object() === String('hello'));
write(new Object() === String('h' + 'ello'));
write(new Object() === new String(''));
write(new Object() === new String('hello'));
write(new Object() === new String('he' + 'llo'));
write(new Object() === new Object());
write(new Object() === new Object());
write(new Object() === [1, 2, 3]);
write(new Object() === [1 ,2 , 3]);
write(new Object() === new Array(3));
write(new Object() === Array(3));
write(new Object() === new Array(1 ,2 ,3));
write(new Object() === Array(1));
write(new Object() === foo);
write(new Object() === undefined);
write(new Object() === null);
write(new Object() === true);
write(new Object() === false);
write(new Object() === Boolean(true));
write(new Object() === Boolean(false));
write(new Object() === new Boolean(true));
write(new Object() === new Boolean(false));
write(new Object() === NaN);
write(new Object() === +0);
write(new Object() === -0);
write(new Object() === 0);
write(new Object() === 0.0);
write(new Object() === -0.0);
write(new Object() === +0.0);
write(new Object() === 1);
write(new Object() === 10);
write(new Object() === 10.0);
write(new Object() === 10.1);
write(new Object() === -1);
write(new Object() === -10);
write(new Object() === -10.0);
write(new Object() === -10.1);
write(new Object() === Number.MAX_VALUE);
write(new Object() === Number.MIN_VALUE);
write(new Object() === Number.NaN);
write(new Object() === Number.POSITIVE_INFINITY);
write(new Object() === Number.NEGATIVE_INFINITY);
write(new Object() === new Number(NaN));
write(new Object() === new Number(+0));
write(new Object() === new Number(-0));
write(new Object() === new Number(0));
write(new Object() === new Number(0.0));
write(new Object() === new Number(-0.0));
write(new Object() === new Number(+0.0));
write(new Object() === new Number(1));
write(new Object() === new Number(10));
write(new Object() === new Number(10.0));
write(new Object() === new Number(10.1));
write(new Object() === new Number(-1));
write(new Object() === new Number(-10));
write(new Object() === new Number(-10.0));
write(new Object() === new Number(-10.1));
write(new Object() === new Number(Number.MAX_VALUE));
write(new Object() === new Number(Number.MIN_VALUE));
write(new Object() === new Number(Number.NaN));
write(new Object() === new Number(Number.POSITIVE_INFINITY));
write(new Object() === new Number(Number.NEGATIVE_INFINITY));
write(new Object() === '');
write(new Object() === 0xa);
write(new Object() === 04);
write(new Object() === 'hello');
write(new Object() === 'hel' + 'lo');
write(new Object() === String(''));
write(new Object() === String('hello'));
write(new Object() === String('h' + 'ello'));
write(new Object() === new String(''));
write(new Object() === new String('hello'));
write(new Object() === new String('he' + 'llo'));
write(new Object() === new Object());
write(new Object() === new Object());
write(new Object() === [1, 2, 3]);
write(new Object() === [1 ,2 , 3]);
write(new Object() === new Array(3));
write(new Object() === Array(3));
write(new Object() === new Array(1 ,2 ,3));
write(new Object() === Array(1));
write(new Object() === foo);
write([1, 2, 3] === undefined);
write([1, 2, 3] === null);
write([1, 2, 3] === true);
write([1, 2, 3] === false);
write([1, 2, 3] === Boolean(true));
write([1, 2, 3] === Boolean(false));
write([1, 2, 3] === new Boolean(true));
write([1, 2, 3] === new Boolean(false));
write([1, 2, 3] === NaN);
write([1, 2, 3] === +0);
write([1, 2, 3] === -0);
write([1, 2, 3] === 0);
write([1, 2, 3] === 0.0);
write([1, 2, 3] === -0.0);
write([1, 2, 3] === +0.0);
write([1, 2, 3] === 1);
write([1, 2, 3] === 10);
write([1, 2, 3] === 10.0);
write([1, 2, 3] === 10.1);
write([1, 2, 3] === -1);
write([1, 2, 3] === -10);
write([1, 2, 3] === -10.0);
write([1, 2, 3] === -10.1);
write([1, 2, 3] === Number.MAX_VALUE);
write([1, 2, 3] === Number.MIN_VALUE);
write([1, 2, 3] === Number.NaN);
write([1, 2, 3] === Number.POSITIVE_INFINITY);
write([1, 2, 3] === Number.NEGATIVE_INFINITY);
write([1, 2, 3] === new Number(NaN));
write([1, 2, 3] === new Number(+0));
write([1, 2, 3] === new Number(-0));
write([1, 2, 3] === new Number(0));
write([1, 2, 3] === new Number(0.0));
write([1, 2, 3] === new Number(-0.0));
write([1, 2, 3] === new Number(+0.0));
write([1, 2, 3] === new Number(1));
write([1, 2, 3] === new Number(10));
write([1, 2, 3] === new Number(10.0));
write([1, 2, 3] === new Number(10.1));
write([1, 2, 3] === new Number(-1));
write([1, 2, 3] === new Number(-10));
write([1, 2, 3] === new Number(-10.0));
write([1, 2, 3] === new Number(-10.1));
write([1, 2, 3] === new Number(Number.MAX_VALUE));
write([1, 2, 3] === new Number(Number.MIN_VALUE));
write([1, 2, 3] === new Number(Number.NaN));
write([1, 2, 3] === new Number(Number.POSITIVE_INFINITY));
write([1, 2, 3] === new Number(Number.NEGATIVE_INFINITY));
write([1, 2, 3] === '');
write([1, 2, 3] === 0xa);
write([1, 2, 3] === 04);
write([1, 2, 3] === 'hello');
write([1, 2, 3] === 'hel' + 'lo');
write([1, 2, 3] === String(''));
write([1, 2, 3] === String('hello'));
write([1, 2, 3] === String('h' + 'ello'));
write([1, 2, 3] === new String(''));
write([1, 2, 3] === new String('hello'));
write([1, 2, 3] === new String('he' + 'llo'));
write([1, 2, 3] === new Object());
write([1, 2, 3] === new Object());
write([1, 2, 3] === [1, 2, 3]);
write([1, 2, 3] === [1 ,2 , 3]);
write([1, 2, 3] === new Array(3));
write([1, 2, 3] === Array(3));
write([1, 2, 3] === new Array(1 ,2 ,3));
write([1, 2, 3] === Array(1));
write([1, 2, 3] === foo);
write([1 ,2 , 3] === undefined);
write([1 ,2 , 3] === null);
write([1 ,2 , 3] === true);
write([1 ,2 , 3] === false);
write([1 ,2 , 3] === Boolean(true));
write([1 ,2 , 3] === Boolean(false));
write([1 ,2 , 3] === new Boolean(true));
write([1 ,2 , 3] === new Boolean(false));
write([1 ,2 , 3] === NaN);
write([1 ,2 , 3] === +0);
write([1 ,2 , 3] === -0);
write([1 ,2 , 3] === 0);
write([1 ,2 , 3] === 0.0);
write([1 ,2 , 3] === -0.0);
write([1 ,2 , 3] === +0.0);
write([1 ,2 , 3] === 1);
write([1 ,2 , 3] === 10);
write([1 ,2 , 3] === 10.0);
write([1 ,2 , 3] === 10.1);
write([1 ,2 , 3] === -1);
write([1 ,2 , 3] === -10);
write([1 ,2 , 3] === -10.0);
write([1 ,2 , 3] === -10.1);
write([1 ,2 , 3] === Number.MAX_VALUE);
write([1 ,2 , 3] === Number.MIN_VALUE);
write([1 ,2 , 3] === Number.NaN);
write([1 ,2 , 3] === Number.POSITIVE_INFINITY);
write([1 ,2 , 3] === Number.NEGATIVE_INFINITY);
write([1 ,2 , 3] === new Number(NaN));
write([1 ,2 , 3] === new Number(+0));
write([1 ,2 , 3] === new Number(-0));
write([1 ,2 , 3] === new Number(0));
write([1 ,2 , 3] === new Number(0.0));
write([1 ,2 , 3] === new Number(-0.0));
write([1 ,2 , 3] === new Number(+0.0));
write([1 ,2 , 3] === new Number(1));
write([1 ,2 , 3] === new Number(10));
write([1 ,2 , 3] === new Number(10.0));
write([1 ,2 , 3] === new Number(10.1));
write([1 ,2 , 3] === new Number(-1));
write([1 ,2 , 3] === new Number(-10));
write([1 ,2 , 3] === new Number(-10.0));
write([1 ,2 , 3] === new Number(-10.1));
write([1 ,2 , 3] === new Number(Number.MAX_VALUE));
write([1 ,2 , 3] === new Number(Number.MIN_VALUE));
write([1 ,2 , 3] === new Number(Number.NaN));
write([1 ,2 , 3] === new Number(Number.POSITIVE_INFINITY));
write([1 ,2 , 3] === new Number(Number.NEGATIVE_INFINITY));
write([1 ,2 , 3] === '');
write([1 ,2 , 3] === 0xa);
write([1 ,2 , 3] === 04);
write([1 ,2 , 3] === 'hello');
write([1 ,2 , 3] === 'hel' + 'lo');
write([1 ,2 , 3] === String(''));
write([1 ,2 , 3] === String('hello'));
write([1 ,2 , 3] === String('h' + 'ello'));
write([1 ,2 , 3] === new String(''));
write([1 ,2 , 3] === new String('hello'));
write([1 ,2 , 3] === new String('he' + 'llo'));
write([1 ,2 , 3] === new Object());
write([1 ,2 , 3] === new Object());
write([1 ,2 , 3] === [1, 2, 3]);
write([1 ,2 , 3] === [1 ,2 , 3]);
write([1 ,2 , 3] === new Array(3));
write([1 ,2 , 3] === Array(3));
write([1 ,2 , 3] === new Array(1 ,2 ,3));
write([1 ,2 , 3] === Array(1));
write([1 ,2 , 3] === foo);
write(new Array(3) === undefined);
write(new Array(3) === null);
write(new Array(3) === true);
write(new Array(3) === false);
write(new Array(3) === Boolean(true));
write(new Array(3) === Boolean(false));
write(new Array(3) === new Boolean(true));
write(new Array(3) === new Boolean(false));
write(new Array(3) === NaN);
write(new Array(3) === +0);
write(new Array(3) === -0);
write(new Array(3) === 0);
write(new Array(3) === 0.0);
write(new Array(3) === -0.0);
write(new Array(3) === +0.0);
write(new Array(3) === 1);
write(new Array(3) === 10);
write(new Array(3) === 10.0);
write(new Array(3) === 10.1);
write(new Array(3) === -1);
write(new Array(3) === -10);
write(new Array(3) === -10.0);
write(new Array(3) === -10.1);
write(new Array(3) === Number.MAX_VALUE);
write(new Array(3) === Number.MIN_VALUE);
write(new Array(3) === Number.NaN);
write(new Array(3) === Number.POSITIVE_INFINITY);
write(new Array(3) === Number.NEGATIVE_INFINITY);
write(new Array(3) === new Number(NaN));
write(new Array(3) === new Number(+0));
write(new Array(3) === new Number(-0));
write(new Array(3) === new Number(0));
write(new Array(3) === new Number(0.0));
write(new Array(3) === new Number(-0.0));
write(new Array(3) === new Number(+0.0));
write(new Array(3) === new Number(1));
write(new Array(3) === new Number(10));
write(new Array(3) === new Number(10.0));
write(new Array(3) === new Number(10.1));
write(new Array(3) === new Number(-1));
write(new Array(3) === new Number(-10));
write(new Array(3) === new Number(-10.0));
write(new Array(3) === new Number(-10.1));
write(new Array(3) === new Number(Number.MAX_VALUE));
write(new Array(3) === new Number(Number.MIN_VALUE));
write(new Array(3) === new Number(Number.NaN));
write(new Array(3) === new Number(Number.POSITIVE_INFINITY));
write(new Array(3) === new Number(Number.NEGATIVE_INFINITY));
write(new Array(3) === '');
write(new Array(3) === 0xa);
write(new Array(3) === 04);
write(new Array(3) === 'hello');
write(new Array(3) === 'hel' + 'lo');
write(new Array(3) === String(''));
write(new Array(3) === String('hello'));
write(new Array(3) === String('h' + 'ello'));
write(new Array(3) === new String(''));
write(new Array(3) === new String('hello'));
write(new Array(3) === new String('he' + 'llo'));
write(new Array(3) === new Object());
write(new Array(3) === new Object());
write(new Array(3) === [1, 2, 3]);
write(new Array(3) === [1 ,2 , 3]);
write(new Array(3) === new Array(3));
write(new Array(3) === Array(3));
write(new Array(3) === new Array(1 ,2 ,3));
write(new Array(3) === Array(1));
write(new Array(3) === foo);
write(Array(3) === undefined);
write(Array(3) === null);
write(Array(3) === true);
write(Array(3) === false);
write(Array(3) === Boolean(true));
write(Array(3) === Boolean(false));
write(Array(3) === new Boolean(true));
write(Array(3) === new Boolean(false));
write(Array(3) === NaN);
write(Array(3) === +0);
write(Array(3) === -0);
write(Array(3) === 0);
write(Array(3) === 0.0);
write(Array(3) === -0.0);
write(Array(3) === +0.0);
write(Array(3) === 1);
write(Array(3) === 10);
write(Array(3) === 10.0);
write(Array(3) === 10.1);
write(Array(3) === -1);
write(Array(3) === -10);
write(Array(3) === -10.0);
write(Array(3) === -10.1);
write(Array(3) === Number.MAX_VALUE);
write(Array(3) === Number.MIN_VALUE);
write(Array(3) === Number.NaN);
write(Array(3) === Number.POSITIVE_INFINITY);
write(Array(3) === Number.NEGATIVE_INFINITY);
write(Array(3) === new Number(NaN));
write(Array(3) === new Number(+0));
write(Array(3) === new Number(-0));
write(Array(3) === new Number(0));
write(Array(3) === new Number(0.0));
write(Array(3) === new Number(-0.0));
write(Array(3) === new Number(+0.0));
write(Array(3) === new Number(1));
write(Array(3) === new Number(10));
write(Array(3) === new Number(10.0));
write(Array(3) === new Number(10.1));
write(Array(3) === new Number(-1));
write(Array(3) === new Number(-10));
write(Array(3) === new Number(-10.0));
write(Array(3) === new Number(-10.1));
write(Array(3) === new Number(Number.MAX_VALUE));
write(Array(3) === new Number(Number.MIN_VALUE));
write(Array(3) === new Number(Number.NaN));
write(Array(3) === new Number(Number.POSITIVE_INFINITY));
write(Array(3) === new Number(Number.NEGATIVE_INFINITY));
write(Array(3) === '');
write(Array(3) === 0xa);
write(Array(3) === 04);
write(Array(3) === 'hello');
write(Array(3) === 'hel' + 'lo');
write(Array(3) === String(''));
write(Array(3) === String('hello'));
write(Array(3) === String('h' + 'ello'));
write(Array(3) === new String(''));
write(Array(3) === new String('hello'));
write(Array(3) === new String('he' + 'llo'));
write(Array(3) === new Object());
write(Array(3) === new Object());
write(Array(3) === [1, 2, 3]);
write(Array(3) === [1 ,2 , 3]);
write(Array(3) === new Array(3));
write(Array(3) === Array(3));
write(Array(3) === new Array(1 ,2 ,3));
write(Array(3) === Array(1));
write(Array(3) === foo);
write(new Array(1 ,2 ,3) === undefined);
write(new Array(1 ,2 ,3) === null);
write(new Array(1 ,2 ,3) === true);
write(new Array(1 ,2 ,3) === false);
write(new Array(1 ,2 ,3) === Boolean(true));
write(new Array(1 ,2 ,3) === Boolean(false));
write(new Array(1 ,2 ,3) === new Boolean(true));
write(new Array(1 ,2 ,3) === new Boolean(false));
write(new Array(1 ,2 ,3) === NaN);
write(new Array(1 ,2 ,3) === +0);
write(new Array(1 ,2 ,3) === -0);
write(new Array(1 ,2 ,3) === 0);
write(new Array(1 ,2 ,3) === 0.0);
write(new Array(1 ,2 ,3) === -0.0);
write(new Array(1 ,2 ,3) === +0.0);
write(new Array(1 ,2 ,3) === 1);
write(new Array(1 ,2 ,3) === 10);
write(new Array(1 ,2 ,3) === 10.0);
write(new Array(1 ,2 ,3) === 10.1);
write(new Array(1 ,2 ,3) === -1);
write(new Array(1 ,2 ,3) === -10);
write(new Array(1 ,2 ,3) === -10.0);
write(new Array(1 ,2 ,3) === -10.1);
write(new Array(1 ,2 ,3) === Number.MAX_VALUE);
write(new Array(1 ,2 ,3) === Number.MIN_VALUE);
write(new Array(1 ,2 ,3) === Number.NaN);
write(new Array(1 ,2 ,3) === Number.POSITIVE_INFINITY);
write(new Array(1 ,2 ,3) === Number.NEGATIVE_INFINITY);
write(new Array(1 ,2 ,3) === new Number(NaN));
write(new Array(1 ,2 ,3) === new Number(+0));
write(new Array(1 ,2 ,3) === new Number(-0));
write(new Array(1 ,2 ,3) === new Number(0));
write(new Array(1 ,2 ,3) === new Number(0.0));
write(new Array(1 ,2 ,3) === new Number(-0.0));
write(new Array(1 ,2 ,3) === new Number(+0.0));
write(new Array(1 ,2 ,3) === new Number(1));
write(new Array(1 ,2 ,3) === new Number(10));
write(new Array(1 ,2 ,3) === new Number(10.0));
write(new Array(1 ,2 ,3) === new Number(10.1));
write(new Array(1 ,2 ,3) === new Number(-1));
write(new Array(1 ,2 ,3) === new Number(-10));
write(new Array(1 ,2 ,3) === new Number(-10.0));
write(new Array(1 ,2 ,3) === new Number(-10.1));
write(new Array(1 ,2 ,3) === new Number(Number.MAX_VALUE));
write(new Array(1 ,2 ,3) === new Number(Number.MIN_VALUE));
write(new Array(1 ,2 ,3) === new Number(Number.NaN));
write(new Array(1 ,2 ,3) === new Number(Number.POSITIVE_INFINITY));
write(new Array(1 ,2 ,3) === new Number(Number.NEGATIVE_INFINITY));
write(new Array(1 ,2 ,3) === '');
write(new Array(1 ,2 ,3) === 0xa);
write(new Array(1 ,2 ,3) === 04);
write(new Array(1 ,2 ,3) === 'hello');
write(new Array(1 ,2 ,3) === 'hel' + 'lo');
write(new Array(1 ,2 ,3) === String(''));
write(new Array(1 ,2 ,3) === String('hello'));
write(new Array(1 ,2 ,3) === String('h' + 'ello'));
write(new Array(1 ,2 ,3) === new String(''));
write(new Array(1 ,2 ,3) === new String('hello'));
write(new Array(1 ,2 ,3) === new String('he' + 'llo'));
write(new Array(1 ,2 ,3) === new Object());
write(new Array(1 ,2 ,3) === new Object());
write(new Array(1 ,2 ,3) === [1, 2, 3]);
write(new Array(1 ,2 ,3) === [1 ,2 , 3]);
write(new Array(1 ,2 ,3) === new Array(3));
write(new Array(1 ,2 ,3) === Array(3));
write(new Array(1 ,2 ,3) === new Array(1 ,2 ,3));
write(new Array(1 ,2 ,3) === Array(1));
write(new Array(1 ,2 ,3) === foo);
write(Array(1) === undefined);
write(Array(1) === null);
write(Array(1) === true);
write(Array(1) === false);
write(Array(1) === Boolean(true));
write(Array(1) === Boolean(false));
write(Array(1) === new Boolean(true));
write(Array(1) === new Boolean(false));
write(Array(1) === NaN);
write(Array(1) === +0);
write(Array(1) === -0);
write(Array(1) === 0);
write(Array(1) === 0.0);
write(Array(1) === -0.0);
write(Array(1) === +0.0);
write(Array(1) === 1);
write(Array(1) === 10);
write(Array(1) === 10.0);
write(Array(1) === 10.1);
write(Array(1) === -1);
write(Array(1) === -10);
write(Array(1) === -10.0);
write(Array(1) === -10.1);
write(Array(1) === Number.MAX_VALUE);
write(Array(1) === Number.MIN_VALUE);
write(Array(1) === Number.NaN);
write(Array(1) === Number.POSITIVE_INFINITY);
write(Array(1) === Number.NEGATIVE_INFINITY);
write(Array(1) === new Number(NaN));
write(Array(1) === new Number(+0));
write(Array(1) === new Number(-0));
write(Array(1) === new Number(0));
write(Array(1) === new Number(0.0));
write(Array(1) === new Number(-0.0));
write(Array(1) === new Number(+0.0));
write(Array(1) === new Number(1));
write(Array(1) === new Number(10));
write(Array(1) === new Number(10.0));
write(Array(1) === new Number(10.1));
write(Array(1) === new Number(-1));
write(Array(1) === new Number(-10));
write(Array(1) === new Number(-10.0));
write(Array(1) === new Number(-10.1));
write(Array(1) === new Number(Number.MAX_VALUE));
write(Array(1) === new Number(Number.MIN_VALUE));
write(Array(1) === new Number(Number.NaN));
write(Array(1) === new Number(Number.POSITIVE_INFINITY));
write(Array(1) === new Number(Number.NEGATIVE_INFINITY));
write(Array(1) === '');
write(Array(1) === 0xa);
write(Array(1) === 04);
write(Array(1) === 'hello');
write(Array(1) === 'hel' + 'lo');
write(Array(1) === String(''));
write(Array(1) === String('hello'));
write(Array(1) === String('h' + 'ello'));
write(Array(1) === new String(''));
write(Array(1) === new String('hello'));
write(Array(1) === new String('he' + 'llo'));
write(Array(1) === new Object());
write(Array(1) === new Object());
write(Array(1) === [1, 2, 3]);
write(Array(1) === [1 ,2 , 3]);
write(Array(1) === new Array(3));
write(Array(1) === Array(3));
write(Array(1) === new Array(1 ,2 ,3));
write(Array(1) === Array(1));
write(Array(1) === foo);
write(foo === undefined);
write(foo === null);
write(foo === true);
write(foo === false);
write(foo === Boolean(true));
write(foo === Boolean(false));
write(foo === new Boolean(true));
write(foo === new Boolean(false));
write(foo === NaN);
write(foo === +0);
write(foo === -0);
write(foo === 0);
write(foo === 0.0);
write(foo === -0.0);
write(foo === +0.0);
write(foo === 1);
write(foo === 10);
write(foo === 10.0);
write(foo === 10.1);
write(foo === -1);
write(foo === -10);
write(foo === -10.0);
write(foo === -10.1);
write(foo === Number.MAX_VALUE);
write(foo === Number.MIN_VALUE);
write(foo === Number.NaN);
write(foo === Number.POSITIVE_INFINITY);
write(foo === Number.NEGATIVE_INFINITY);
write(foo === new Number(NaN));
write(foo === new Number(+0));
write(foo === new Number(-0));
write(foo === new Number(0));
write(foo === new Number(0.0));
write(foo === new Number(-0.0));
write(foo === new Number(+0.0));
write(foo === new Number(1));
write(foo === new Number(10));
write(foo === new Number(10.0));
write(foo === new Number(10.1));
write(foo === new Number(-1));
write(foo === new Number(-10));
write(foo === new Number(-10.0));
write(foo === new Number(-10.1));
write(foo === new Number(Number.MAX_VALUE));
write(foo === new Number(Number.MIN_VALUE));
write(foo === new Number(Number.NaN));
write(foo === new Number(Number.POSITIVE_INFINITY));
write(foo === new Number(Number.NEGATIVE_INFINITY));
write(foo === '');
write(foo === 0xa);
write(foo === 04);
write(foo === 'hello');
write(foo === 'hel' + 'lo');
write(foo === String(''));
write(foo === String('hello'));
write(foo === String('h' + 'ello'));
write(foo === new String(''));
write(foo === new String('hello'));
write(foo === new String('he' + 'llo'));
write(foo === new Object());
write(foo === new Object());
write(foo === [1, 2, 3]);
write(foo === [1 ,2 , 3]);
write(foo === new Array(3));
write(foo === Array(3));
write(foo === new Array(1 ,2 ,3));
write(foo === Array(1));
write(foo === foo);
